# This is a example configuration file for the imag suite.
# It is written in TOML

#
# Configuration options for the user interface
#
[ui]

#
# Configuration options for the commandline user interface
#
[ui.cli]

# History file path for readline. Will be created by imag if it does not exist.
readline_history_file = "/tmp/readline.history"

# Number of lines to safe in the history file
readline_history_size = 100

# Ignore duplicated lines
readline_history_ignore_dups = true

# Tell if lines which begin with a space character are saved or not in the
# history list.
readline_history_ignore_space = true

# The prompt string to use
readline_prompt = ">> "

[store]

# Set to false if you do not want imag to create the directory where the store
# lives implicitely
implicit-create = false

# Hooks which get executed right before the Store is closed.
# They get the store path as StoreId passed, so they can alter the complete
# store, so these hooks should be chosen carefully.
store-unload-hook-aspects  = [ "debug", "vcs" ]

pre-create-hook-aspects    = [ "debug", "vcs" ]
post-create-hook-aspects   = [ "debug", "vcs" ]

pre-move-hook-aspects      = [ "debug" ]
post-move-hook-aspects     = [ "debug" ]

pre-retrieve-hook-aspects  = [ "debug", "vcs" ]
post-retrieve-hook-aspects = [ "debug", "vcs" ]

pre-update-hook-aspects    = [ "debug", "vcs" ]
post-update-hook-aspects   = [ "debug", "vcs" ]

pre-delete-hook-aspects    = [ "debug", "vcs" ]
post-delete-hook-aspects   = [ "debug", "vcs" ]

[store.aspects.debug]
parallel = false
mutable_hooks = true

[store.aspects.vcs]
parallel = false
mutable_hooks = false

[store.hooks.stdhook_debug]
aspect = "debug"

[store.hooks.stdhook_git_update]
aspect = "vcs"

# set to false to disable
enabled = true

# Fail if the repository cannot be opened. If this is set to `false`, the error
# will be printed, but will not abort the store operation. `true` will print the
# error and abort the store action.
abort_on_repo_init_failure = true

# Ensure to be on this branche before doing anything.
ensure_branch = "refs/heads/master"

# Try to checkout the ensure_branch if it isn't checked out
try_checkout_ensure_branch = true

# Commit configuration
[store.hooks.stdhook_git_update.commit]

# Enable committing here. If not enabled, the "stdhook_git_storeunload" hook
# will commit all changes in one commit when the store is closed.
enabled = false

# Whether to do the commit interactively
interactive = false

# Set to true to use the $EDITOR for the commit, to false to do on commandline
# When committing without editor, only a single line is allowed as commit
# message
interactive_editor = false

# Commit message if the commit is not interactive
message = "Update"

[store.hooks.stdhook_git_delete]
aspect = "vcs"

# set to false to disable
enabled = true

# Fail if the repository cannot be opened. If this is set to `false`, the error
# will be printed, but will not abort the store operation. `true` will print the
# error and abort the store action.
abort_on_repo_init_failure = true

# Ensure to be on this branche before doing anything.
ensure_branch = "refs/heads/master"

# Try to checkout the ensure_branch if it isn't checked out
try_checkout_ensure_branch = true

# Commit configuration
[store.hooks.stdhook_git_delete.commit]

# Enable committing here. If not enabled, the "stdhook_git_storeunload" hook
# will commit all changes in one commit when the store is closed.
enabled = false

# Whether to do the commit interactively
interactive = false

# Set to true to use the $EDITOR for the commit, to false to do on commandline
# When committing without editor, only a single line is allowed as commit
# message
interactive_editor = false

# Commit message if the commit is not interactive
message = "Deleted"

[store.hooks.stdhook_git_storeunload]
aspect = "vcs"

# set to false to disable
enabled = true

# Fail if the repository cannot be opened. If this is set to `false`, the error
# will be printed, but will not abort the store operation. `true` will print the
# error and abort the store action.
abort_on_repo_init_failure = true

# Ensure to be on this branche before doing anything.
ensure_branch = "refs/heads/master"

# Try to checkout the ensure_branch if it isn't checked out
try_checkout_ensure_branch = true

# Commit configuration
[store.hooks.stdhook_git_storeunload.commit]

# Enable on-unload-committing, causing the store-unload hook to commit the
# changes to the store. This has no effect if the changes were already committed
# by the other git hooks.
enabled = true

# Do a git-add on all files that are not in the index yet, before committing.
# This must be turned on, as we do not support adding with "Update" hooks and
# only committing with the "Drop" hook, yet.
# So, effectively, disabling this will disable committing.
#
# If not set: false
add_wt_changes = true

# Whether to do the commit interactively
interactive = false

# Set to true to use the $EDITOR for the commit, to false to do on commandline
# When committing without editor, only a single line is allowed as commit
# message
interactive_editor = false

# Commit message if the commit is not interactive
message = "Commit on drop"

